Incremental Computation of Static Single Assignment Form

نویسندگان

  • Jong-Deok Choi
  • Vivek Sarkar
  • Edith Schonberg
چکیده

Abs t r ac t . Static single assignment (SSA) form is an intermediate representation that is well suited for solving many data flow optimization problems. However, since the standard algorithm for building SSA form is exhaustive, maintaining correct SSA form throughout a multi-pass compilation process can be expensive. In this paper, we present incremental algorithms for restoring correct SSA form after program transformations. First, we specify incremental SSA algorithms for insertion and deletion of a use/definition of a variable, and for a large class of updates on intervals. We characterize several cases for which the cost of these algorithms will be proportional to the size of the transformed region and hence potentially much smaller than the cost of the exhaustive algorithm. Secondly, we specify customized SSA-update algorithms for a set of common loop transformations. These algorithms are highly efficient: the cost depends at worst on the size of the transformed code, and in many cases the cost is independent of the loop body size and depends only on the number of loops.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Interprocedural Static Single Assignment Form in Bauhaus

In this paper we describe interprocedural static single assignment form (ISSA) with optimizations as implemented in the Bauhaus project. We explain our framework which uses an abstract program representation enabling us to use different pointer analyses ranging from fast but imprecise to slow but precise ones. Our implementation includes the computation of (may and must) side effects and optimi...

متن کامل

Loop and Address Code Optimization for Digital Signal Processors

This paper presents a new DSP-oriented code optimization method to enhance performance by exploiting the specific architectural features of digital signal processors. In the proposed method, a source code is translated into the static single assignment form while preserving the highlevel information related to loops and the address computation of array accesses. The information is used in gener...

متن کامل

Modeling Data-Parallel Programs with the Alignment-Distribution Graph

We present an intermediate representation of a program called the Alignment-Distribution Graph that exposes the communication requirements of the program. The representation exploits ideas developed in the static single assignment form of programs, but is tailored for communication optimization. It serves as the basis for algorithms that map the array data and program computation to the nodes o...

متن کامل

The Static Single Assignment Form and its Computation

The Static Single Assignment (SSA) form of programs is a commonly used intermediate representation of programs in optimizing compilers. The key step in converting a program to SSA form is called-placement. Cytron et al used dominance frontiers to design a-placement algorithm whose running time grows quadratically with the size of the control ow graph of the program. Recent eeorts by the compile...

متن کامل

Java Compilation for Multi-threaded Architectures

This paper outlines the design of a compilation framework for applications in embedded systems programmed in Java and targeted at multi-threaded architectures. These architec-tures have multiple Thread Processing Units (TPUs) to support loop-level parallelism, where each TPU employs instruction-level parallelism, and data and control speculation techniques to improve performance. The paper desc...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1996